<?php

namespace app\admin\controller;
use think\Controller;
use think\Cookie;
use think\Db;
use think\Session;


class LoginController extends Controller
{
    public function login()
    {
        //判断是session中是否有值
        if(Session::get('admin_id')){
            $this->redirect('admin/index/index');
        }else{
            if (\request()->isPost()){
                $name=input("name");
                $pwd=input("pwd");
                $pwd=pswCrypt($pwd);
                $rempsw=input("rempsw");
                //验证用户是否填写
                if (empty($name)||empty($pwd)||empty($pwd)){
                    return json(["code"=>0,"msg"=>"用户名或密码不能为空"]);
                }
                $userInfo=Db::name("admin")->where(array("names"=>$name))->find();
                //验证用户是否存在
                if(empty($userInfo)){
                    return json(["code"=>0,"msg"=>"当前用户不存在或者用户名错误"]);
                }
                //验证密码
                if($pwd!=$userInfo["password"]){
                    return json(["code"=>0,"msg"=>"密码错误请从新输入"]);
                }
                //验证用户的状图
                if ($userInfo["status"]==2){
                    return json(["code"=>0,"msg"=>"当前用户已经被冻结，请联系管理员"]);
                }

                //存sessiopn
                Session::set('admin_id',$userInfo["id"]);
                Session::set('admin_name',$userInfo["names"]);


                //判断用户是否记住密码
                if ($rempsw==1){
                    //记住密码   存cookie中
                    \cookie('cu',trim($name),3600*24*30);
                    \cookie('CSDFDSA',trim($pwd),3600*24*30);
                }else{
                    //删除cookie、
                    Cookie::delete('cu');
                    Cookie::delete("CSDFDSA");
                }
                //记录时间及ip
                Db::name('admin')->where(array('id'=>$userInfo['id']))->update(['last_login'=>date('Y-m-d H:i:s', time()), 'last_ip'=>request()->ip()]);
                //登录日志的记录
                $data["admin_id"]=$userInfo["id"];
                $data["ip"]=request()->ip();
                $data["num"]=1;
                $data["browser_type"]=get_broswer_type();
                $data["browser"]=get_broswer();
                $data["create_time"]=date('Y-m-d H:i:s', time());
                $data["type_os"]=get_os();
                Db::name('login_admin')->insert($data);


                $this->success("登录成功");


            }else{
                $name = Cookie::get('cu');
                $pwd = Cookie::get('CSDFDSA');
                if($name && $pwd) {
                    $this->assign('name',$name);
                    $this->assign('pwd',$pwd);
                }
                return $this->fetch("login");
            }

        }
    }

    /**
     * Login::loginout()
     * 安全退出
     * @author Gary
     * @return void
     */
    public function loginout(){
        Session::delete('admin_id');
       $this->redirect('/admin/login/login');
    }

    /*
     * 个人信息
     */
    public function info(){
        $id=input("param.admin_id");
        $find=Db::name("admin")->where(["id"=>$id])->find();
        $this->assign("find",$find);
        return $this->fetch("info");
    }

}